package com.aatattoo.light_food_service.mapper;

import com.aatattoo.light_food_service.entity.UserFollow;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 用户id：被关注的人 userId
 * 粉丝id：关注动作的发起者  fansId
 */
@Mapper
@Repository
public interface UserFollowMapper {
    /**
     * 查找关注信息（用户ID）
     * @param userId
     * @return
     */
    List<UserFollow> followFindById(@Param("userId") int userId);

    /**
     * 查找粉丝信息（用户ID）
     * @param userId
     * @return
     */
    List<UserFollow> fansFindById(@Param("userId") int userId);

    /**
     * 查找共同关注
     * @param userId 用户id
     * @param othId 查找共同关注的人
     * @return
     */
    List<UserFollow> CommonConcernFindById(int userId, int othId);

    /**
     * 查找互关
     * @param userFollow
     * @return
     */
    int mutualAttentionFindById(UserFollow userFollow);

    /**
     * 查找当前用户是否是我的关注
     * @param userFollow
     * @return
     */
    int findFollowByBothId(UserFollow userFollow);

    /**
     * 统计关注数量
     * @param userId
     * @return
     */
    int countFollowById(int userId);

    /**
     * 统计粉丝数量
     * @param userId
     * @return
     */
    int countFansById(int userId);

    /**
     * 新增关注
     * @param userFollow
     * @return
     */
    int addfollow(UserFollow userFollow);

    /**
     * 取消关注
     * @param userFollow
     * @return
     */
    int deletefollow(UserFollow userFollow);

    /**
     * 获取粉丝未查看信息数目
     * @param userId
     * @return
     */
    int countRemind(@Param("userId")int userId);

    /**
     * 更新用户粉丝列表信息remind状态
     * @param userId
     * @return
     */
    int updateRemind(@Param("userId")int userId);
}
